//交换数值
#include <stdio.h>
void SwapValues(int *x,int *y);
int main(){
	int num1=0,num2=0;
	printf("please enter the values of num1 and num2:\n");
	scanf("%d %d",&num1,&num2);
	printf("before : x=%d y=%d\n",num1,num2);
	SwapValues(&num1,&num2);//想要交换两个数的值，必须取地址，why？往下看
	printf("afer : x=%d y=%d",num1,num2);
	return 0;
}

void SwapValues(int *x,int *y)//为什么不是，x和 y ？记不记得局部变量这一概念？
{//如果使用x和 y,即使交换了数值，出了这个函数，x和 y的值还是不会变！因为出了作用域 x和 y 就会销毁
	int t;
	t=*y;
	*y=*x;
	*x=t;
	//为什么这里 t不用写 “ * ”，而 x 和 y要用 *
	//①因为t不是指针变量，只是一个用于存储整形的普通变量
	//②为什么 x和 y要 *，因为我们取了 x和 y的地址，加 *的意思就是，*x，x指向的值的意思，
	//x指向的值就是普通的整形，因此t也是普通变量，不用加 *
}